<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
  <title> AvFun 关于 </title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <link rel="stylesheet" href="/static/gbstyle.css" type="text/css" media="screen" />
  <link rel="stylesheet" href="/static/gbhighlight.css" type="text/css" media="screen" />
</head>

<body>
  <div id="bgcontain"> 
    <div class="contain">
        <table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="33" rowspan="2">&nbsp;</td>
            <td width="221" rowspan="2"><a href="/"><img src="/static/logo.png" width="189" height="53" border="0" /></a></td>
            <td rowspan="2">&nbsp;      </td>
          </tr>
        </table>
        <table width="900" border="0" align="center" cellpadding="0" cellspacing="0" class="tbspan">
          <tr>
            <td width="10" height="36" background="/static/31bg1.gif"><img src="/static/31c1.gif" width="9" height="36"></td>
            <td width="770" background="/static/31bg1.gif">
              <a href='/'>首页</a>&nbsp;|&nbsp;
              <a href='/list/anime/1'>动画</a>&nbsp;|&nbsp; 
              <a href='/list/music/1'>音乐</a>&nbsp;|&nbsp;
              <a href='/list/game/1'>游戏</a>&nbsp;|&nbsp;
              <a href='/list/ent/1'>娱乐</a>&nbsp;|&nbsp;
              <a href='/list/zj/1'>番影</a>&nbsp;|&nbsp;
              <a href='/list/art/1'>文章</a>&nbsp;|&nbsp;
              <a href='/list/hidden/1'>里区</a>&nbsp;|&nbsp;
              <a href='/rank/'>排行榜</a>&nbsp;|&nbsp;
              <a href='/userrank/'>名人堂</a>&nbsp;|&nbsp;
              <a href='/apikey/'>API</a>&nbsp;|&nbsp;
              <a href='/bbs/'>论坛</a>&nbsp;|&nbsp;
              <a href='/static/news.html'>公告</a>&nbsp;|&nbsp;
              <a href='/about/'>关于</a>&nbsp;|&nbsp;
            </td>
            <td width="10" align="right" background="/static/31bg1.gif"><img src="/static/31c2.gif" width="9" height="36"></td>
           </tr>
         </table>
         <table width="900" border="0" align="center" cellpadding="0" cellspacing="0" class="tbspan">
           <tr> 
             <td width="10" height="32" background="/static/31bg2.gif">
               <img src="/static/31c3.gif" width="4" height="32">
           </td>
           <td width="400" background="/static/31bg2.gif">
             <div class="hotworddiv">热门关键字：　
               <a href='/search/akb' target='_self'><u>AKB</u></a>&nbsp;
               <a href='/search/东方' target='_self'><u>东方</u></a>&nbsp;
               <a href='/search/mugen' target='_self'><u>mugen</u></a>&nbsp;
               <a href='/search/荼荼丸' target='_self'><u>荼荼丸</u></a>&nbsp;
               <a href='/search/金坷垃' target='_self'><u>金坷垃</u></a>&nbsp;
             </div>
           </td>
           <td width="372" align="center" background="/static/31bg2.gif">
             <table width="100%" border="0" cellspacing="0" cellpadding="0">
               <tr> 
                 <td width="47%">
                   <input id="searchTerms" type="text" class="kw1" onkeypress='{if (event.keyCode==13) window.location.href="/search/"+document.getElementById("searchTerms").value.replace(" ","+");}'>
                 </td>
                 <td width="30%" align="center"> 
                   <select id="searchtype" class="op1"> 
                      <option selected>智能模糊搜索</option>
                   </select>
                 </td>
                 <td width="23%" align="center"> 
                   <input name="imageField" type="image" src="/static/v31s.gif" width="73" height="19" border="0" onclick='window.location.href="/search/"+document.getElementById("searchTerms").value.replace(" ","+");'>
                 </td>
               </tr>
             </table>
           </td>
           <td width="10" align="right" background="/static/31bg2.gif" >
             <img src="/static/31c4.gif" width="4" height="32" > 
            </td>
          </tr>
        </table>
      <div id="content" class="narrowcolumn">

        <div class="post" id="about">
          <ul class="title">
            <li class="topic">关于</a></li>
            <li class="postmeta">obserer于2010-04-25发布&nbsp;分类: <a href="/about/">关于</a>&nbsp;${views}次查看&nbsp;<a href="/about/#comments">${count}回复</a> </li> 
          </ul>
          <div class="clear"></div>
          <div class="entry">
            <p>
              山寨也会成瘾。 --observer
            </p>
            <p>
              本站的<b>最高纲领</b>：建设成为一个开源的，高性能的，多功能的，多猴子管理的，审核透明的，up主拥有充分自主权的，刷子免疫的，以AV资源为主的（大误），视频弹幕欣赏站。
            </p>
            <p>
      		  本站的<b>最低纲领</b>：开源高性能ac和bili弹幕备份站以及检索系统。
            </p>
            <p>
            <p>
              很晚才得知了<b>acfun</b>这么个网站，大爱之，可是适逢刷子横行，大姨妈泛滥，而且对网站的某些功能也较为不满：比如搜索功能很弱(文章区的那个也不怎么样)，比如没有一个好用的全站排行榜功能，比如弹幕数量有500个的上限导致好弹幕经常被刷掉，比如缺乏有效的对抗下限帝的防刷机制，比如弹幕显示实现得很蛋疼导致经常出现测试CPU的资源，比如阿婆主没有办法管理弹幕和留言，比如无法查阅阿婆主发过的视频合辑，比如没有RSS订阅，比如审核很慢，等等。
            </p>
            <p>
              让我下决心山寨的是两个原因，一是某一次时间不短的大姨妈，二是大姨妈期间我发现了<a href="http://code.google.com/p/projectanotherdisplayer/">PAD项目</a>，这是一个基于<a href="http://www.opensource.org/licenses/mit-license.php">MIT License</a>的开源flash(flex)流播放器。它实现了两个重要功能：一、Flex播放器，可以很方便地播放基于渣浪播放列表的视频集合，并且辅以弹幕处理功能；二、java的服务器端，用于和播放器交互。但是它也有一些不足之处：一、Flex播放器很难看，二、那服务器端写得我都没有吐槽的欲望。
            </p>
            <p>
              <img src="/static/padsample.png" title="PAD运行截图" width="360px"/>
            </p>
            <p>
              由于PAD基于MIT协议，就意味着可以被修改后使用于商业目的也不必继续开源，所以也有一些在PAD上成功二次开发的例子，比较著名的就是<a href="http://bilibili.us">bilibili</a>了，它的那个播放器做得挺不错的，只有从弹幕轨迹中隐约还能看到一丝PAD的影子，不过以我山寨的惯例：1.必然将开源并且改协议为GPL，2.会制作相应的桌面版。
            </p>
            <p>
              说起二次开发，这个真是让我有点晕菜，Flex Builder恶心之处我真是秉烛难书，难怪PAD的作者<a href="http://hi.baidu.com/tamatamaki">川添珠姬</a>酱也是一堆牢骚了。不过话说我对川酱也是一堆牢骚，你既然参数化了很多东东，为毛不稍微花个1小时写个简单的说明文档呢，因为web server写得太丑，我这部分是完全重写的，然后又不知道PAD的接口结构，结果还是看了半天ActionScript这种有点诡异的代码。然后顺手把界面改得稍微顺眼了一点，很多细节我到现在还是不太明白是怎么实现的，不太想浪费太多时间在Flex的细节研究上，如果过得去我就懒得再改了。
            </p>
            <p>
              <img src="/static/flash4builder.png" title="二次开发" width="360px" />
            </p>
            <p>
              总之，这个avfun站点还在持续建设中，等到用户管理和猴子管理部分写完的时候应该就会开源。目前架构是nginx+apache mod_wsgi+web.py+mysql/sqlite双数据库，nginx的rewrite功能大爱，mod_wsgi据说只有apache才玩得转，只有上apache了
，mysql是因为写入速度不错，使用起来也比pgsql方便，但是mysql搜索太慢，coreseek/sphinx全文搜索效果太差，所以用了sqlite做了个双数据库，自己用着觉得还行。
            </p>
            <p>
              最后，本站的姐妹山寨站点，<a href="http://www.simplecd.org">SimpleCD</a>，是为了保存VeryCD海量整理过的ed2k链接而建立的备份站，完全开源，并且还有能独立运行的Windows桌面版，欢迎使用。
            </p>
            <p>
              <img src="/static/simplecdsnap.png" title="SimpleCD界面" width="360px" />
            </p>
            <p>
              本站开源项目主页<a href="http://code.google.com/p/avfun/">http://code.google.com/p/avfun/</a>，还在建设中。
            </p>
            <p class="meta"> 
              <small> &raquo; <a href="#comments">你可以在下面留言</a></small>
            </p>
          </div>
        </div> <!-- end post -->

        <h3 id="comments">${count} 评论</h3>
        <ol class="commentlist">
        <!-- cmt: cit,username,date,url,content -->
        %for cmt in cmts:
          % if cmt[0]%2==0:
          <li class="comment even" id="comment-${cmt[0]}">
          % else:
          <li class="comment odd" id="comment-${cmt[0]}">
          % endif
          % if cmt[3]:
            <div id="div-comment-${cmt[0]}"><div class="comment-author vcard"><cite><a href="${cmt[3]}" rel="external nofollow">${cmt[1]}</a></cite></div>
          % else:
            <div id="div-comment-${cmt[0]}"><div class="comment-author vcard">${cmt[1]}</div>
          % endif
            <div class="comment-meta commentmetadata"><a href="/about/#comment-${cmt[0]}">${cmt[2]}</a></div>
            <p><p>${cmt[4]}</p></p>
            <div class="reply"><a rel="nofollow" href="/about/#comment-${cmt[0]}#respond" onclick='return addComment.moveForm("div-comment-${cmt[0]}", "${cmt[0]}", "respond")'>回复</a></div></div>
          </li>
        % endfor
        </ol>

        <script type="text/javascript" src="/static/comment-reply.js"></script>

        <div id="respond">
          <h3>留言</h3>
          <div class="cancel-comment-reply">
            <small><a rel="nofollow" id="cancel-comment-reply-link" href="#respond" style="display:none;">点此取消留言</a></small>
          </div>
          <form style="display: block;" action="/about/" method="POST" id="commentform">
          <p>
            <input id="id_name" type="text" name="name" maxlength="50" />
            <label for="author"><small>用户名 (必要)</small></label>
          </p>
          <div id="result"></div>
          <p>
            <input type="text" name="email" id="id_email" />
            <label for="email"><small>电子邮件 (会保密) (必要)</small></label>
          </p>
          <p>
            <input type="text" name="url" id="id_url" />
            <label for="url"><small>网站</small></label>
          </p>
          <p>
            <textarea id="id_content" rows="10" cols="40" name="content"></textarea>
          </p>
          <p>
            <input type="hidden" name="parent_id" value="0" id="id_parent_id" />
            <input name="submit" type="image" src="/static/submit.png" id="submit" value="提交留言" />
          </p>
          </form>
        </div> <!-- end of respond -->
      </div><!--end of content-->
    </div>
    <div id="footer">
    </div>
		<script language="javascript" type="text/javascript" src="http://js.users.51.la/3784709.js"></script>
		<noscript><a href="http://www.51.la/?3784709" target="_blank"><img alt="&#x6211;&#x8981;&#x5566;&#x514D;&#x8D39;&#x7EDF;&#x8BA1;" src="http://img.users.51.la/3784709.asp" style="border:none" /></a></noscript>
  </div>
</body>
</html>
